package bintree.LeetCode;
//606. 根据二叉树创建字符串
public class Num606_tree2str {
    /**
     * 传入一个以root为根的二叉树就能转为字符串
     */
    public StringBuilder rep = new StringBuilder();
    public String tree2str(TreeNode root) {
        if(root == null){
            return "";
        }
        //前序遍历 根 左 右
        //1.根
       rep.append(root.val);//连接根节点

        //2.处理左子树
        if(root.left != null){
            //左子树不为空
            rep.append("(");
            tree2str(root.left);//把左子树当初新的根传入
            rep.append(")");
        }else{
            //左子树为空，但右子树不为空的情况
            if(root.right != null){
                rep.append("()");
            }
        }

        //3.处理右子树
        if(root.right != null){
            //右子树不为空
            rep.append("(");
            tree2str(root.right);//把右子树当初新的根传入
            rep.append(")");
        }

        return rep.toString();
    }
}
